﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Mx.Ipn.Escom.TT20080015.Modelo.Datos;
using Mx.Ipn.Escom.TT20080015.Modelo.DB;

namespace Mx.Ipn.Escom.TT20080015.Vistas.Control
{
    /// <summary>
    /// La clase ClaveAcceso permite cambiar la clave de acceso de un usuario.
    /// </summary>
    public partial class ClaveAcceso : System.Web.UI.Page
    {
        /// <summary>
        /// Verifica que se haya iniciado la sesion de un usuario.
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["user"] == null)
                Server.Transfer("~/Default.aspx", false);

            if (Context.Items.Contains("invalidKey"))
            {
                Response.Write("<script type=\"text/javascript\">alert('Clave de acceso incorrecta');</script>");
            }
        }

        /// <summary>
        /// Valida las claves de acceso y si son correctas, realiza la actualización.
        /// </summary>
        protected void cambiarButton_OnClick(object sender, EventArgs e)
        {
            Usuario usuario = (Usuario)Session["user"];
            if (usuario.validar(usuario.Username, nuevaTextBox.Text))
            {
                usuario.ClaveAcceso = nuevaTextBox.Text;
                try
                {
                    UsuarioManager.Actualizar(usuario);
                }
                catch (Exception ex)
                {
                    Context.Items.Add("msg", ex.Message);
                    Server.Transfer("../../vistas/control/PaginaError.aspx", false);
                }
            }
            else
            {
                Context.Items.Add("invalidKey", true);
                Server.Transfer("./ClaveAcceso.aspx", false);
            }
            Context.Items.Add("msg", "La nueva contrase&ntilde;a ha sido almacenada.");
            Server.Transfer("../../vistas/control/Control.aspx", false);
        }

        /// <summary>
        /// Valida las claves de acceso y si son correctas, realiza la actualización.
        /// </summary>
        protected void cancelarButton_OnClick(object sender, EventArgs e)
        {
            Server.Transfer("../../vistas/control/Control.aspx", false);
        }
    }
}
